package com.itheima.health.service;

import com.itheima.health.entity.PageResult;
import com.itheima.health.entity.QueryPageBean;
import com.itheima.health.pojo.Role;

import java.util.List;

/**
 * <dd>描述: ~ RoleService</dd>
 * <dd>创建时间：  21:21 2020/10/8</dd>
 * <dd>创建人： yuzhiguo</dd>
 * <dt>版本历史: </dt>
 * Date         Author         Version     Description
 * ------------------------------------------------------------------
 * 2020/10/8     yuzhiguo         1.0        1.0 Version
 */
public interface RoleService {

    /**
     * 分页查询
     * @param queryPageBean
     * @return
     */
    PageResult pageQuery(QueryPageBean queryPageBean);

    /**
     * 新增角色
     * @param role
     * @param permissionIds
     * @param menuIds
     */
    void add(Role role, Integer[] permissionIds, Integer[] menuIds);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    Role findById(Integer id);

    /**
     * 根据角色ID查询关联的权限ID集合
     * @param id
     * @return
     */
    List<Integer> findPermissionIdsByRoleId(Integer id);

    /**
     * 根据角色ID查询关联的菜单ID集合
     * @param id
     * @return
     */
    List<Integer> findMenuIdsByRoleId(Integer id);

    /**
     * 编辑
     * @param role
     * @param permissionIds
     * @param menuIds
     */
    void edit(Role role, Integer[] permissionIds, Integer[] menuIds);

    /**
     * 根据id删除角色
     * @param id
     */
    void deleteById(Integer id);

    List<Role> findAll();

}
